In the expanding field of data communication where privacy and security of information is critical, a number of different techniques are used to provide for near transparent information exchange without undue risk of compromise. Predominant among those are various cryptographic techniques. One technique is use of a session key, applicable to a single information exchange session. Another technique is use of a public/private key combination which is applicable to multiple information exchange sessions. Each technique has unique advantages and disadvantages and both are well known to those skilled in the field.
Message encryption using a session key relies on the encryption key remaining known to only the parties participating in the individual session. For this reason, the session key must be distributed in a secure manner to each of the parties prior to the session, and the session key must be destroyed or protected following the session. If the session key is compromised, an eavesdropper will be able to reconstruct the information exchange. An example of an encipherment function using a session key is the National Bureau of Standards Data Encryption Standard (DES). In an example, a plain text message M is enciphered or encrypted to produce a cypher message c using the encipherment function f by the formula c=f(m, sk) where sk is the session key. The receiver is able to recover the plain text message m through knowledge of the session key sk using the inverse of the encipherment function m=f.sup.1 (c, sk).
Single session keys provide a very secure method of encryption. However, single session keys are difficult to distribute and maintain securely when multiple different parties require the ability to communicate securely with each other.
An alternative method for maintaining secure information exchange between multiple different parties is to use public key cryptographic techniques. Typically, each party i has a public key Pi and a private or secret key Si. The public key Pi is known to everyone, but the private or secret key Si is known only to party i. A party j, who wishes to send a message m to party i, uses the public key Pi to create a cipher message c=p(m, Pi), where c is the encrypted message, m is the plain text message, Pi is the public key, and p represents the public key operation. However, in contrast to the session key technique, the cipher message can only be decrypted by party i using her own secret private key Si (e.g., m=s(c, Si), where s signifies the private key operation).
The public/private key encryption technique is well known in the field, and is often paired with the session key technique to distribute session keys in a secure manner.
When using the public/private key encryption technique to protect information over an unsecure medium, there is substantial computational cost for both the sender and receiver. This computational cost and time becomes very critical when the size of the data block to be transmitted is small. Information exchanges with small data blocks include the types of information exchange that is routine in most financial transactions, where the information block may only encompass 2KB. As an example, when public key cryptography is used to encrypt and distribute the symmetric single session key with small data blocks, even a fast Pentium.RTM. class computer will require about 1/10 second to encrypt a DES key using 768 bit RSA, while encrypting the 2KB block of data using DES will be only a few milliseconds. On a slower processor, the RSA time may be up to 1/2 second. When a large volume of small value financial transactions are accomplished over a short period of time, it therefore becomes important to find techniques to reduce the RSA time to optimize processor efficiency when exchanging small data blocks.
A number of patents exist dealing with improved methods for encryption of messages. U.S. Pat. No. 5,457,748 to Bergum et al., was issued for a "Method and Apparatus for Improved Security within Encryption Communication Devices." This invention is drawn to maintaining security of keys that are used for encryption, which keys are stored in the volatile memory of a computer. This invention addresses the issue of providing greater security for storage and utilization of encryption and decryption keys. The invention stores encrypted representations of keys in non-volatile memory. Keys are later reconstructed and stored in RAM for subsequent use. This avoids the problem of ineffective erasure of keys stored in non-volatile memory and hence potential security breech from recovery of keys from such non-volatile memory. The relevance of this patent is the fact that the keys are pre-stored in the encrypted form This strictly is an enhanced security scheme and the invention does not disclose the computational load associated with public/private key in an electronic commerce environment.
U.S. Pat. No. 5,454,039 to Coppersmith et al., was issued for a "Software Efficient Pseudo Random Function and the Use Thereof for Encryption." This invention relates to methods for using encryption and for high speed computationally efficient encryption on conventional computers. The relevance of this patent is the fact that to accomplish the encryption rapidly, a pseudo random numbered table is pre-computed and then used to create the keys to encrypt. The invention does not disclose an encryption of specific keys and does not address the public/private key encryption scheme.
U.S. Pat. No. 5,406,628 to Beller et al., was issued for "Public Key Authentication and Key Agreement for Low Cost Terminals." The relevance of this patent is the fact that pre-computation of key related elements is disclosed with the pre-computation done in association with a particular form of signature operation. However, this invention does not disclose a large scale pre-computation of keys that are subsequently stored for later use.
U.S. Pat. No. 5,253,294 to Maurer was issued for a "Secured Transmission System." The relevance of this patent is the disclosure of the encryption of the key used for subsequent transmission. Further, the specification notes that one embodiment may be that many whole keys may be stored in one location such as "read only" memory. Keys are then extracted and used in order so that all stations have the same keys at the same time. The patent also discloses that certain "key material" may be pre-stored in a library of key material and used as needed. However, this invention does not disclose public/private key encryption or transmission of messages according to public/private key and the computational penalties associated therewith.
U.S. Pat. No. 5,144,667 was issued to Pogue, Jr. et aL, for a "Method of Secure Remote Access." This patent relates to access devices for vehicles and uses specifically an RSA public key system. This invention notes the storing of a common key and an encrypted form of a common key. However, the '667 patent does not address issues associated with peak processing times and is not designed to be used in the communication system but is used to enhance security of a static security system associated with individual vehicles to which access is desired. Thus, large scale pre-processing is not disclosed.
U.S. Pat. No. 5,237,611 was issued to Rasmussen et al., for a "Encryption/Decryption Apparatus with Non-Accessible Table of Keys." This invention discloses tables of key encryption keys which are stored in encrypted form and RAM. These keys include both "public" and "private" sets of KEKs which are computed in advance and stored in the device of the '611 patent. However, this invention does not disclose use in an environment of highly active electronic commerce.
U.S. Pat. No. 5,144,665 was issued to Takarati et al., for a "Cryptographic Communication Method and System." This invention is a cryptographic communication system operating between a host computer and a plurality of terminals connected to the host. Storage of key information is disclosed in the specification, however, such storage does not involve the pre-processing of cryptographic keys. Additionally, this invention delays public key cryptographic processing until the very last moment, and does not provide for pre-processing of keys and storage until such time as the keys are to be used.
U.S. Pat. No. 5,073,924 to Matyas et al., was issued for a "Method and Apparatus for Controlling Use of a Public Key Based on the Level of Import Integrity for the Key." The relevance of this patent is the disclosure of a cryptographic key data set (CKDS) which is a storage of cryptographic key information that is later accessed from a database. This CKDS comprises encrypted keys although calculation of the CKDS is not disclosed. The public keys and private keys used are calculated using key generation algorithm. The encrypted form of the public key is then stored in the CKDS after receiving location data processing. This invention does not disclose the pre-processing of encrypted key storage.
None of the prior art provides a method for resource leveling of the computational resources by generating symmetric key, encrypting the symmetric key with DES, and storing both for immediate and ready access prior to their demand.